// pages/order/order.js
Page({
  data: {
    active: 0,  // 当前选中的标签页
    allOrders: [],  // 所有订单
    paidOrders: [],  // 已付款订单
    pendingOrders: [],  // 待发货订单
    awaitingOrders: [],  // 待收货订单
    refundOrders: [],  // 退款/售后订单
  },

  onLoad() {
    this.loadOrders();  // 页面加载时请求订单数据
  },

  // 加载订单数据
  loadOrders() {
    const userId = wx.getStorageSync('userid');  // 从本地存储获取用户ID
    if (!userId) {
      wx.showToast({
        title: '未获取到用户ID',
        icon: 'none',
        duration: 2000
      });
      return;
    }
  
    // 请求订单数据，筛选当前用户的订单
    wx.request({
      url: 'http://localhost:3000/api/selectOrder',
      method: 'POST',
      data: {
        filterQuery: { userid: userId }  // 筛选条件为用户ID
      },
      success: (res) => {
        if (res.data.code === 200) {
          const orders = res.data.list;  // 获取返回的订单列表
  
          // 给每个订单的商品添加图片路径
          const ordersWithThumb = orders.map(order => {
            const orderWithThumb = {
              ...order,
              // 确保 orderItems 存在并且是数组
              orderItems: Array.isArray(order.orderItems) ? order.orderItems.map(item => ({
                ...item,
                thumb: `http://localhost:3000/${item.avatarName}`  // 设置商品图片路径
              })) : [],  // 如果 orderItems 不存在或不是数组，设置为空数组
            };
            return orderWithThumb;
          });
  
          // 将处理后的订单数据分类
          this.setData({
            allOrders: ordersWithThumb,
            paidOrders: ordersWithThumb.filter(order => order.state === '已付款'),
            pendingOrders: ordersWithThumb.filter(order => order.state === '待发货'),
            awaitingOrders: ordersWithThumb.filter(order => order.state === '待收货'),
            refundOrders: ordersWithThumb.filter(order => order.state === '退款/售后')
          });
        } else {
          wx.showToast({
            title: '加载订单失败',
            icon: 'none',
            duration: 2000
          });
        }
      },
      fail: (err) => {
        console.error('订单加载失败', err);
        wx.showToast({
          title: '网络错误，请稍后重试',
          icon: 'none',
          duration: 2000
        });
      }
    });
  }
  ,

  // 标签页切换事件
  onChange(event) {
    this.setData({
      active: event.detail.index  // 更新当前选中的标签页
    });
  },

  // 删除订单
  onDeleteOrder(event) {
    const orderId = event.currentTarget.dataset.id;  // 获取当前订单的 ID
    wx.showModal({
      title: '确认删除',
      content: '您确定要删除该订单吗？',
      success: (res) => {
        if (res.confirm) {
          wx.request({
            url: 'http://localhost:3000/api/delOrder',
            method: 'POST',
            data: { id: orderId },
            success: (res) => {
              if (res.data.code === 200) {
                wx.showToast({ title: '删除成功', icon: 'success', duration: 2000 });
                this.loadOrders();  // 重新加载订单
              } else {
                wx.showToast({ title: '已删除', icon: 'none', duration: 2000 });
                this.loadOrders();
              }
            },
            fail: (err) => {
              wx.showToast({ title: '网络错误', icon: 'none', duration: 2000 });
            }
          });
        }
      }
    });
  },
  onOrderClick(event) {
    const orderId = event.currentTarget.dataset.id; // 获取订单ID
    console.log("跳转到订单详情，订单编号为：",orderId);
    wx.navigateTo({
      url: `/pages/orderDetail/orderDetail?orderId=${orderId}` // 跳转到订单详情页，并传递订单ID
    });
  },

  // 确认订单
  onConfirmOrder(event) {
    const orderId = event.currentTarget.dataset.id;  // 获取当前订单的 ID
    const orderState = event.currentTarget.dataset.state;  // 获取订单的当前状态

    // 判断订单状态是否是 "待收货"
    if (orderState === '待收货') {
      wx.showModal({
        title: '确认收货',
        content: '您确定已收货并进入退款/售后状态吗？',
        success: (res) => {
          if (res.confirm) {
            // 更新订单状态为 "退款/售后"
            wx.request({
              url: 'http://localhost:3000/api/updateOrder',  // 更新订单状态的接口
              method: 'POST',
              data: {
                id: orderId,  // 订单ID
                state: '退款/售后',  // 更新为退款/售后
              },
              success: (response) => {
                if (response.data.code === 200) {
                  wx.showToast({
                    title: '收货确认成功，状态已更新为退款/售后',
                    icon: 'success',
                    duration: 2000
                  });
                  this.loadOrders();  // 刷新订单列表
                } else {
                  wx.showToast({
                    title: '状态更新失败',
                    icon: 'none',
                    duration: 2000
                  });
                }
              },
              fail: (err) => {
                wx.showToast({ title: '网络错误，请稍后再试', icon: 'none', duration: 2000 });
              }
            });
          }
        }
      });
    } else {
      wx.showToast({
        title: '此订单无法确认收货',
        icon: 'none',
        duration: 2000
      });
    }
  }
});
